登陆 renren.py

用了几次,后来就登不上了。改了,更登不上了。

#!/usr/bin/python
# coding:UTF-8
# CopyRight 2011 Adou XD ,All Rights Reserved

import urllib
import urllib2
import os
import sys
import cookielib
import re
import socket
from BeautifulSoup import BeautifulSoup


class renren():
    ''''''
    logdata = {}
    logdata['email'] =  ''
    logdata['password'] = ''
    #logdata['icode'] = ''
    #logdata['autoLogin'] = 'true'
    logdata['origURL'] = 'http://www.renren.com/home'
    #logdata['domain'] = 'renren.com'
    #logdata['key_id'] = '1'
    #logdata['_rtk'] = '******'

    logdata['formName'] = ''
    logdata['method'] = ''
    logdata['isplogin'] = 'true'
    logdata['submit'] = '鐧诲綍'


    def login(self ,email ,psd ):
        renren.logdata['email'] = email
        renren.logdata['password'] = psd
        postdata = urllib.urlencode(renren.logdata)
        cookiefile = urllib2.HTTPCookieProcessor()
        self.opener = urllib2.build_opener(cookiefile)
        req = urllib2.Request('http://www.renren.com/PLogin.do',postdata)
        result = self.opener.open(req)
        
        '''
        if result.geturl() != 'http://www.renren.com/home' and 'http://guide.renren.com/guide':
            print "Login Failed!"
            return False
        '''
        rawHtml = result.read()
        open('out.html','w').write(rawHtml)

        tokens = re.findall( r"(?<=get_check:')[\-0-9]+" ,rawHtml)
        if not tokens :
            print "requestToken Not Found!"
            return False
        self.requestToken = tokens[0]
        rtks = re.findall( r"(?<=get_check_x:')[a-fA-F0-9]+" ,rawHtml)
        if not rtks :
            print "_rtk Not Found!"
            return False
        self.rtk= rtks[0]
        return True

    def poststatus(self,msg):
        statusdata = {'content':msg,
                      'isAtHome':'1',
                      'requestToken':self.requestToken }

        poststatus = urllib.urlencode(statusdata)
        updataReq = urllib2.Request('http://status.renren.com/doing/updateNew.do',poststatus)
        updataResult = self.opener.open(updataReq)


    def postmainstatus(self,msg) :

        statusdata = {'content':msg,
                      'isAtHome':'1',
                      'requestToken':self.requestToken,
                      '_rtk':self.rtk,
                      'channel':'renren'
                      }

        poststatus = urllib.urlencode(statusdata)
        #updataReq = urllib2.Request('http://page.renren.com/doing/update',poststatus)
        updataReq = urllib2.Request('http://shell.renren.com/601122810/status',poststatus)
        updataResult = self.opener.open(updataReq)


if __name__ == "__main__":
    me = renren()
    if not me.login('username','password') :
        #print 'Login Failed!'
        sys.exit()
    me.postmainstatus("Hello,Pyton!")